#pragma once
#include<iostream>
using namespace std;

namespace A
{
	template<class T>
	struct ListNode
	{
		ListNode<T>* next;
		ListNode<T>* prev;
		T data;
	};

	template<class T>
	class list
	{
		typedef ListNode<T> Node;
	public:
		list()
		{
			_head = new Node;
			_head->next = _head;
			_head->prev = _head;
		}
		
		void push_back(const T& x)
		{
			Node* 
		}

	private:
		Node* _head;
	};
}